/* 
模块化：
    解决复杂问题时，自顶向下逐层把系统分解成若干个小模块的过程。
    对于整个系统，模块是可组合、分解、更换的单元。
    电脑可以分为CPU，内存，硬盘，显示器，鼠标，键盘。可以随时更换自己喜欢的鼠键。
    
编程的模块化:
    按固定的规则，把大的功能分解为独立并相互依赖的小模块。
    如打车软件，分为用户、司机、车辆、订单、地图、通知等模块。
    好处：1. 提供了代码的复用度; 2. 提高代码的可维护性; 3. 按需加载。
         
模块化规范：(约定大于规范、规范小于编码)
    模块化规范就是代码在模块化拆分和组合时，遵守的原则。
    例如引用模块的语法，暴露成员的语法。
    好处：大家遵守同样的规范编写代码，可以降低沟通成本，极大方便各个模块直接的互相调用。

模块的分类：
    Node.js 根据模块来源的不同，将模块分为3大类。
        1. 内置模块(Node.js 由官方提高，安装 Node 时，已安装到本地。如 fs、path、http 等)
        2. 自定义模块(用户创建的每一个 .js 文件，都是自定义模块)
        3. 第三方模块(由第三方开发的模块，即非官方和用户自己创建的模块，需要先下载)

模块的加载：
    const fs = require('fs');        // 加载内置模块
    const fs = require('./demo.js'); // 加载自定义模块
    const fs = require('moment');    // 加载第三方模块
    注意：使用 require() 方法加载其它模块时，会执行被加载模块中的代码。
*/